Protocol-Oriented Programming
Swift では、クラスの利用は最小限にして、struct や enum でイミュータブルに型設計を行い、ポリモーフィズムの実現方法としては protocol を利用する、という思想 クラスを使うべきケースはつぎの 2 つのみ
標準 framework でクラスが提供されており、継承する必要がある場合
本当に必要な暗黙的な共有を行う場合
nobuoka.icon 要は、型の継承と実装の継承を明確に区別して、実装の継承はできる限りしない、ということっぽい?